5
תגובות
משתנה static כמחלקה
פתח
ilikeme
,
למה הם לא עושים שיהיה אפשר להגדיר משתנה static בתור מחלקה
יש פתרון לדבר הזה?
אני לא מתכוון עכשיו לעשות משתנה פשוט... אין לזה פתרון?
יש פתרון לדבר הזה?
אני לא מתכוון עכשיו לעשות משתנה פשוט... אין לזה פתרון?
<?php
class Database
{
private static $instance = new Database();
public static function getInstance()
{
return Database::$instance;
}
}
?>
class Database
{
private static $instance = new Database();
public static function getInstance()
{
return Database::$instance;
}
}
?>
5 תשובות
ענה
iiddaannyy
ב
15 לאפריל 2013
#
הבעיה הקוד שלך היא זה:
new Database()
ולא זה:
private static $instance
כי אין שום בעיה עם משתני מחלקה סטטיים.
@iiddaannyy אני יודע שזו הבעיה O.O שאלתי למה אי-אפשר להגדיר משתנה סטטי בתור מחלקה חדשה
ו@Michael תודה רבה! באמת שלא חשבתי על הרעיון הזה ולבדוק אם המשתנה שווה לNULL
ענה
iiddaannyy
ב
15 לאפריל 2013
#
-_- הייתי בטוח שהשאלה שלך הייתה: "למה הם לא עושים שיהיה אפשר להגדיר משתנה static בתוך מחלקה".
בכל מקרה, זה אותו הדבר גם עם המשתנים הלא הסטטיים.
This declaration may include an initialization, but this initialization must be a constant value--that is, it must be able to be evaluated at compile time and must not depend on run-time information in order to be evaluated.
~ הדוקומנטציה של PHP
אתה יכול לאתחל מאפייני מחלקה רק עם ערכים קבועים, ולא עם ערכים כמו אובייקטים. זה קשר לעבודה של מפענח הקוד, יש שם שלבים שונים, ואתה לא יכול לדלג על אחד מהם.